Facebook Certified Advertising API Developer試験対策
hiroki.icon模擬試験とか情報もないし試験に出そうな問題を自分で推論してみるか
Graph APIとMarketing APIの違いについて
MarketingAPI→広告データ
GraphAPI→ソーシャルデータ
バージョニングも異なる
APIのバージョニングの指定方法について
→vの後に番号
"https://graph.facebook.com/v2.9/your-facebook-user-id/photos?access_token=your-access-token
APIのエンドポイントはhttpも有効か?
→httpsのみが有効である
MarketingAPIで行うタスクについて
Ads Management
Audience Management
Signal Management
Reporting & Insights
MarketingAPIへアクセスするために必要なクレデンシャル
→System userのアクセストークン
ads_management、ads_read権限を付与したsystem user
ユーザアクセストークンを生成する
→Facebookログインしてもらってアクセストークンを獲得する。OAuth2フロー
アプリアクセストークンを生成するために必要な情報
→アプリid、app secret
curl -X GET "https://graph.facebook.com/oauth/access_token ?client_id={your-app-id} &client_secret={your-app-secret} &grant_type=client_credentials"
アプリアクセストークンはほとんどの場合サーバー間の呼び出しのみで使用
現在のアクセストークン利用者の情報を取得する
→https://graph.facebook.com/v3.2/me?access_token={your_token}
meエンドポイント
ユーザのアドを操作したい場合のスコープについて
→ads_management
GraphAPIを使用する時とMarketingAPIを使用する時のアクセストークンの生成方法
→他の人の情報を操作する場合であれば、OAuthフローでFacebook認証してもらってアクセストークンを生成→主にGraphAPIだろう
→自分のビジネスだけ→Systemu user→MarketingAPI
ad accountオブジェクトはmarketing apiでどう特別であるか
→act_のプリフィックスが付く
https://graph.facebook.com/v3.2/act_{your-ad-account-id}/campaigns
appに開発者を追加することでどんなメリットがある?
→APIに関する重要な情報がemailで飛ぶ
ビデオアップロードのurlはどれ?
graph-video.facebook.com
MarketingAPIの新しいバージョンが出た時に以前のバージョンは何日サポートされる?
→90日
90日以内に新しいバージョンへ移行しなければいけない
以前のバージョンがunavailableになったらリクエストは全て失敗するよ
The Marketing API typically releases a new version every 90 days.
カスタムオーディエンスの権限について
→ads_managementで作成・アップロードできる
Ratelimitを知る方法
→レスポンスのx-ad-account-usageヘッダー
ドキュメントでサポートされていないAPIがあった場合はどうする?
→GRAPH API EXPLORERでsaveしてsupportに報告する
会社でMarketing APIの開発をしているが誰がappを作成すればいいのか?
→あなた個人のアカウントで作成する。その後で会社のBMがclaimすれば良い。
/icons/hr.icon
オフラインイベントセットをシステムユーザからアップロードするために必要なロールは?
→Offline Event Set Uploader or Admin to the System User
アップロードするだけなら最小権限でOffline Event Set Uploaderが良いのかな
auto-tracking enabledで何が起こる
→広告アカウントで新しい広告が打たれたら自動でオフラインイベントセットに対して追跡されるようになる
upload_tagのパラメータの値について
→同じバッチでのアップロードをグループ化するためにタグをつける
一回のAPI呼び出しでは2000件までしかアップできないので分割する時に
PIIデータの加工
→normalized and hashed
PIIのマッチレートが低い
normalized and hashed処理を間違えている
アップロードしてるcustom dataフィールドが少なすぎる
email,phone numberみたいな強いPIIを提供していない。name and cityとかだけしかアップロードしていない
オフラインコンバージョンのアップロード
自分でAPI実装
パートナーインテグレーション
file-uploader
オフラインイベントセットからカスタムコンバージョンを作成する
→https://graph.facebook.com/<API_VERSION>/act_<ACCOUNT_ID>/customconversions
ルールを指定してCreatする
deduplicate処理は何日間のデータで有効?
→アップロード7日以内のデータで重複カットされる
ベストプラクティスはdailyで追加分データをアップロードすること
deduplicateが上手くいっていない
7日以内のデータアップロードか
EventTimeの粒度が日毎とかになっていないか?→一日に二回購入した人などが意図せずdeduplicateされてしまう
オフラインイベントセットからアトリビューションメトリクスが消失した
広告がオフラインイベントをtrackできていない→auto-tracking enabled
auto-tracking enabledをする前のImpressionである→もう無理
90日以上前のオフラインイベントである
/icons/hr.icon
カスタムオーディエンスの作成とアップロードに必要な権限は
→ads_management
UIからfileアップロードする場合データ処理は事前にする必要はあるか?
→ない。そのままのカスタムオーディエンス一覧をアップロードするとブラウザがnormalized and hashedしてくれる
特定の属性(場所、年齢...)を持った人へ配信したい
→ターゲティングで広告配信する
特定の行動をした人間へ配信したい
→オーディエンス配信
Webで特定の行動をした人間からカスタムオーディエンスを作成したい
→Pixelをデータソースとしてルールを作成してオーディエンス作成
Pixelからオーディエンスを作成する場合に、オーディエンスを作成する以前の行動データも含めて作成する時に指定するパラメータは?
→prefill=1
カスタムオーディエンスに30日間保持したい
→retention_days=30
1~180まで指定
オーディエンスの制限について
オーディエンス数に制限はない
一回に加えられるのは1万人まで
オーディエンスを加えるのに1時間くらいかかるかも
オーディエンスからユーザを削除するのに最大で24時間かかる
カスタムオーディエンスAPIエラーになる
一回で1万人以上アップロードしようとしてる
100-パラメータを間違えている
294-ads_managementの権限がない
広告主持っているCRMからオーディエンスをアップする場合のcustomer_file_source
→USER_PROVIDED_ONLY
広告アカウントはモバイル用にオーディエンスをいくつ持てるか
→最大200まで
Lookalikeなカスタムオーディエンスを作成するためにはseedのオーディエンスに最低何人含まれていないといけないか
→最低でも100人
アップロードしたカスタムオーディエンスで問題が起きた
→レスポンスでinvalidなレコードのサンプルが返却されるのでそれをもとにデバッグする
normalizationが悪いかどうかについては判定不可能だよ
ユーザのオプトアウト
→https://graph.facebook.com/<api_version>/act_<ad_account_id>/usersofanyaudience
にDeleteで送ることで全てのカスタムオーディエンスからそのユーザは削除される
External Idにはどんなものが使われる?
→広告主システム自前のユニークid、loyalty membership IDs、external cookie IDs
hiroki.iconprecogでもexternal idでtd_cookieを送信していた気がするね
電話番号にはcountrycodeが含まれるべきか?
→必ず含めるべき。そして-などは削除すること
送信するデータにcountryを含めるべきなのはなぜか?
→FBでは全世界のユーザでマッチする処理を実行する。countryの指定があることによってその国の人間とのみマッチするプロセスに省力化できる
/icons/hr.icon
Insight APIを使用するのに必要な権限
→ads_read
action_attribute_windowのデフォルトは
→7d_click,1d_view
28 day views and clicksについては今後使えなくなる
date_presetのデフォルトは
→last_30d
enumで指定
n日毎の集計結果が欲しい場合
→time_increment=n
デフォルトではall_daysになっているので全期間で一つの結果
sortの仕方
昇順asc
降順desc
ASYNCHRONOUS CALLSの手順
Insigth APIへPOST
report_run_idをhttps://graph.facebook.com/<api_version>/<run_report_id>へGetしてステータス確認
終了していた場合https://graph.facebook.com/<api_version>/<run_report_id>/insights"で結果取得
レポートの出力形式を変更
code:curl
curl -G \
-d 'access_token=<access_token>'
-d 'report_run_id=<ad_report_run_id>' \
-d 'name=myreport' \
-d 'format=xls' \
データ量に関するベストプラクティス
日付の範囲を制限する→lifetimeのような全期間指定ダメ
必要なメトリクスに限定する
複数のクエリに分解する
action_target_id、product_idのようなカーディナリティのBreakdownをやらない
Insight APIでのエラー
レート制限を超えてしまっている
→使用統計(x-fb-ads-insights-throttle)をチェックするコードを追加すること
GETリクエストでout of memory
POSTリクエストでtimeoutエラー
→クエリ結果を小さくする